﻿using System;
using System.Collections.Generic;
using System.Data;
using EvaluacionExalmarOledbHelper;
using EvaluacionExalmarEntidades;
using EvaluacionExalmarInterfaces;
using System.Configuration;
using System.Text;

namespace EvaluacionExalmarAccesoDatos
{
    public class ResultadoComentarios : IResultadoComentarios
    {
        #region IResultadoComentarios Members

        private readonly String _sCadenaConexion = ConfigurationManager.ConnectionStrings["con"].ConnectionString;

        public IList<ResultadoComentariosInfo> Listar(ResultadoComentariosInfo oResultado)
        {
            var query = new StringBuilder("Select Id_Empleado, Id_Tipo_Jerarquia, Tipo_Jerarquia, ComentariosC1, ComentariosC2, " +
                " ComentariosC3, ComentariosC4, ComentariosC5, ComentariosC6, ActividadesC1, ActividadesC2, ActividadesC3, ActividadesC4, ActividadesC5, " +
                " ActividadesC6 From ConsultaResultadosComentarios ");

            if (oResultado != null)
            {
                if (oResultado.IdEmpleado.HasValue)
                {
                    query.Append(" Where Id_Empleado = " + oResultado.IdEmpleado);
                }
            }

            var oListaResultado = new List<ResultadoComentariosInfo>();

            using (var drd = OleDbHelper.ExecuteReader(_sCadenaConexion, CommandType.Text, query.ToString()))
            {
                if (drd != null)
                {
                    if (drd.HasRows)
                    {
                        while (drd.Read())
                        {
                            oListaResultado.Add(new ResultadoComentariosInfo(drd.GetInt32(0), 
                                drd.GetInt32(1), new TipoJerarquiaInfo(drd.GetInt32(1), drd.GetString(2).Trim(), null), 
                                drd.GetString(3).Trim(), drd.GetString(4).Trim(), drd.GetString(5).Trim(), drd.GetString(6).Trim(), 
                                drd.GetString(7).Trim(), drd.GetString(8).Trim(), drd.GetString(9).Trim(), drd.GetString(10).Trim(), 
                                drd.GetString(11).Trim(), drd.GetString(12).Trim(), drd.GetString(13).Trim(), drd.GetString(14).Trim()));
                        }
                    }
                }
            }

            return oListaResultado;
        }

        #endregion
    }
}
